package cn.iocoder.yudao.module.member.controller.admin.userpromotionrecords.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.util.*;
import java.math.BigDecimal;

import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDateTime;

import com.alibaba.excel.annotation.*;

@Schema(description = "管理后台 - 用户推广记录 Response VO")
@Data
@ExcelIgnoreUnannotated
public class UserPromotionRecordsRespVO {

    @Schema(description = "租户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "27486")
    @ExcelProperty("租户编号")
    private Long id;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

    @Schema(description = "邀请人用户id", example = "14595")
    @ExcelProperty("邀请人用户id")
    private Long inviterUserId;

    @Schema(description = "邀请人用户昵称", example = "张三")
    @ExcelProperty("邀请人用户昵称")
    private String inviterNickname;

    @Schema(description = "邀请人邀请码", example = "YW8OZJ")
    @ExcelProperty("邀请人邀请码")
    private String inviterInviteCode;

    @Schema(description = "被邀请人用户id", example = "24775")
    @ExcelProperty("被邀请人用户id")
    private Long inviteeUserId;

    @Schema(description = "被邀请人用户昵称", example = "李四")
    @ExcelProperty("被邀请人用户昵称")
    private String inviteeNickname;

    @Schema(description = "被邀请人邀请码", example = "YW8OZJ")
    @ExcelProperty("被邀请人邀请码")
    private String inviteeInviteCode;

    @Schema(description = "被邀请人注册时间", example = "2025-08-17 21:21:41")
    @ExcelProperty("被邀请人注册时间")
    private LocalDateTime inviteeRegTime;

    @Schema(description = "充值状态：0 未充值；1 已充值；", example = "1")
    @ExcelProperty("充值状态：0 未充值；1 已充值；")
    private Boolean rechargeStatus;

    @Schema(description = "累积充值，单位：分")
    @ExcelProperty("累积充值，单位：分")
    private Integer cumulativeRecharge;

    @Schema(description = "邀请充值，单位：分")
    @ExcelProperty("邀请充值，单位：分")
    private Integer invitedRecharge;

}